package com.oa.framework.org.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.oa.common.exception.CreateObjectException;
import com.oa.common.exception.UpdateObjectException;
import com.oa.framework.org.domain.Duty;

import java.util.List;

/**
 * @author cuichao
 */
public interface DutyService {

    /**
     * 加载职务列表
     * @return
     */
    List<Duty> loadDuties();

    /**
     * 加载可用的职务列表
     * @return
     */
    List<Duty> loadEnableDuties();
    /**
     * 分页查询职务
     *
     * @param page
     * @return
     */
    IPage<Duty> search(IPage<Duty> page);

    /**
     * 根据Id获取职务
     *
     * @param dutyId
     * @return
     */
    Duty getDutyDetail(Long dutyId);

    /**
     * 添加职务
     * @param duty
     * @return
     */
    boolean addDuty(Duty duty)  throws CreateObjectException;

    /**
     * 更新职务
     * @param duty
     * @return
     */
    boolean updateDuty(Duty duty) throws UpdateObjectException;

    /**
     * 禁用职位
     *
     * @param dutyId
     * @return
     */
    boolean disable(Long dutyId);
}
